Autogenerated HTML docs for v1.5.3-rc1-27-ga5e40 
diff --git a/git-commit-tree.html b/git-commit-tree.html index 0c73fac..cf6b69c 100644 --- a/git-commit-tree.html +++ b/git-commit-tree.html 
@@ -356,7 +356,7 @@  name = "Your Name"   email = "your@email.address.xz"</tt></pre>   </div></div>  -<p>A commit comment is read from stdin (max 999 chars). If a changelog  +<p>A commit comment is read from stdin. If a changelog   entry is not provided via "&lt;" redirection, "git-commit-tree" will just wait   for one to be entered and terminated with ^D.</p>   </div>  @@ -482,7 +482,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 16-Jun-2007 09:48:57 UTC  +Last updated 15-Jul-2007 07:18:25 UTC   </div>   </div>   </body>  
diff --git a/git-commit-tree.txt b/git-commit-tree.txt index 9586b97..5870c2c 100644 --- a/git-commit-tree.txt +++ b/git-commit-tree.txt 
@@ -72,7 +72,7 @@ 	name = "Your Name" 	email = "your@email.address.xz"   -A commit comment is read from stdin (max 999 chars). If a changelog +A commit comment is read from stdin. If a changelog  entry is not provided via "<" redirection, "git-commit-tree" will just wait  for one to be entered and terminated with ^D.   
diff --git a/git-fast-import.html b/git-fast-import.html index 760cecf..c537b33 100644 --- a/git-fast-import.html +++ b/git-fast-import.html 
@@ -633,7 +633,7 @@  data   ('from' SP &lt;committish&gt; LF)?   ('merge' SP &lt;committish&gt; LF)?  - (filemodify | filedelete | filerename | filedeleteall)*  + (filemodify | filedelete | filecopy | filerename | filedeleteall)*   LF</tt></pre>   </div></div>   <p>where <tt>&lt;ref&gt;</tt> is the name of the branch to make the commit on.  @@ -652,13 +652,13 @@  commit message use a 0 length data. Commit messages are free-form   and are not interpreted by Git. Currently they must be encoded in   UTF-8, as fast-import does not permit other encodings to be specified.</p>  -<p>Zero or more <tt>filemodify</tt>, <tt>filedelete</tt>, <tt>filename</tt> and  -<tt>filedeleteall</tt> commands  +<p>Zero or more <tt>filemodify</tt>, <tt>filedelete</tt>, <tt>filecopy</tt>, <tt>filerename</tt>  +and <tt>filedeleteall</tt> commands   may be included to update the contents of the branch prior to   creating the commit. These commands may be supplied in any order.   However it is recommended that a <tt>filedeleteall</tt> command preceed  -all <tt>filemodify</tt> and <tt>filerename</tt> commands in the same commit, as  -<tt>filedeleteall</tt>  +all <tt>filemodify</tt>, <tt>filecopy</tt> and <tt>filerename</tt> commands in the same  +commit, as <tt>filedeleteall</tt>   wipes the branch clean (see below).</p>   <h4><tt>author</tt></h4>   <p>An <tt>author</tt> command may optionally appear, if the author information  @@ -850,6 +850,23 @@  <p>here <tt>&lt;path&gt;</tt> is the complete path of the file or subdirectory to   be removed from the branch.   See <tt>filemodify</tt> above for a detailed description of <tt>&lt;path&gt;</tt>.</p>  +<h4><tt>filecopy</tt></h4>  +<p>Recursively copies an existing file or subdirectory to a different  +location within the branch. The existing file or directory must  +exist. If the destination exists it will be completely replaced  +by the content copied from the source.</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt> 'C' SP &lt;path&gt; SP &lt;path&gt; LF</tt></pre>  +</div></div>  +<p>here the first <tt>&lt;path&gt;</tt> is the source location and the second  +<tt>&lt;path&gt;</tt> is the destination. See <tt>filemodify</tt> above for a detailed  +description of what <tt>&lt;path&gt;</tt> may look like. To use a source path  +that contains SP the path must be quoted.</p>  +<p>A <tt>filecopy</tt> command takes effect immediately. Once the source  +location has been copied to the destination any future commands  +applied to the source location will not impact the destination of  +the copy.</p>   <h4><tt>filerename</tt></h4>   <p>Renames an existing file or subdirectory to a different location   within the branch. The existing file or directory must exist. If  @@ -866,6 +883,14 @@  location has been renamed to the destination any future commands   applied to the source location will create new files there and not   impact the destination of the rename.</p>  +<p>Note that a <tt>filerename</tt> is the same as a <tt>filecopy</tt> followed by a  +<tt>filedelete</tt> of the source location. There is a slight performance  +advantage to using <tt>filerename</tt>, but the advantage is so small  +that it is never worth trying to convert a delete/add pair in  +source material into a rename for fast-import. This <tt>filerename</tt>  +command is provided just to simplify frontends that already have  +rename information and don't want bother with decomposing it into a  +<tt>filecopy</tt> followed by a <tt>filedelete</tt>.</p>   <h4><tt>filedeleteall</tt></h4>   <p>Included in a <tt>commit</tt> command to remove all files (and also all   directories) from the branch. This command resets the internal  @@ -1223,7 +1248,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 10-Jul-2007 07:49:19 UTC  +Last updated 15-Jul-2007 07:18:25 UTC   </div>   </div>   </body>  
diff --git a/git-fast-import.txt b/git-fast-import.txt index 80a8ee0..30ee98d 100644 --- a/git-fast-import.txt +++ b/git-fast-import.txt 
@@ -302,7 +302,7 @@ 	data 	('from' SP <committish> LF)? 	('merge' SP <committish> LF)? -	(filemodify | filedelete | filerename | filedeleteall)* +	(filemodify | filedelete | filecopy | filerename | filedeleteall)* 	LF  ....   @@ -325,13 +325,13 @@  and are not interpreted by Git. Currently they must be encoded in  UTF-8, as fast-import does not permit other encodings to be specified.   -Zero or more `filemodify`, `filedelete`, `filename` and -`filedeleteall` commands +Zero or more `filemodify`, `filedelete`, `filecopy`, `filerename` +and `filedeleteall` commands  may be included to update the contents of the branch prior to  creating the commit. These commands may be supplied in any order.  However it is recommended that a `filedeleteall` command preceed -all `filemodify` and `filerename` commands in the same commit, as -`filedeleteall` +all `filemodify`, `filecopy` and `filerename` commands in the same +commit, as `filedeleteall`  wipes the branch clean (see below).    `author` @@ -497,6 +497,27 @@  be removed from the branch.  See `filemodify` above for a detailed description of `<path>`.   +`filecopy` +^^^^^^^^^^^^ +Recursively copies an existing file or subdirectory to a different +location within the branch. The existing file or directory must +exist. If the destination exists it will be completely replaced +by the content copied from the source. + +.... +	'C' SP <path> SP <path> LF +.... + +here the first `<path>` is the source location and the second +`<path>` is the destination. See `filemodify` above for a detailed +description of what `<path>` may look like. To use a source path +that contains SP the path must be quoted. + +A `filecopy` command takes effect immediately. Once the source +location has been copied to the destination any future commands +applied to the source location will not impact the destination of +the copy. +  `filerename`  ^^^^^^^^^^^^  Renames an existing file or subdirectory to a different location @@ -517,6 +538,15 @@  applied to the source location will create new files there and not  impact the destination of the rename.   +Note that a `filerename` is the same as a `filecopy` followed by a +`filedelete` of the source location. There is a slight performance +advantage to using `filerename`, but the advantage is so small +that it is never worth trying to convert a delete/add pair in +source material into a rename for fast-import. This `filerename` +command is provided just to simplify frontends that already have +rename information and don't want bother with decomposing it into a +`filecopy` followed by a `filedelete`. +  `filedeleteall`  ^^^^^^^^^^^^^^^  Included in a `commit` command to remove all files (and also all